/*
    Copyright (C) 2025 mio <stigma@disroot.org>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef ASTER_SLIDER_H
#define ASTER_SLIDER_H

#include <tqslider.h>

class VideoPlayer;

/*!
 * A modified version of TQSlider that modifies the behaviour of clicking and dragging
 * for audio/video players.
 */
class AsterSlider : public TQSlider
{
    TQ_OBJECT

public:
    explicit AsterSlider(TQWidget *parent = nullptr);

    bool isHeld() const
    {
        return m_isHeld;
    }

public slots:
    void setValue(int) override;

protected:
    void mouseMoveEvent(TQMouseEvent *) override;
    void mousePressEvent(TQMouseEvent *) override;
    void mouseReleaseEvent(TQMouseEvent *) override;

private:
    bool m_isHeld;
};

#endif
